import { BaseObjectAmcaxProp } from './baseAmcaxProp';

const BCs = {
  AmcaxProp: {
    childCreatable: true,
  },
  BCs: {
    AmcaxProp: BaseObjectAmcaxProp,
    SelectType: {
      Label: 'Type',
      Type: 'option',
      Options: ['Fixed', 'Displacement/Rotation'],
      Default: 'Fixed',
      EmitChange: true,
    },
    RegionType: {
      Type: 'Node',
    },
    DisplacementDOF: {
      Type: 'group',
      Label: 'DOF',
      HandleChange: {
        SelectType: {
          'Displacement/Rotation': {},
        },
      },
      DOF: {
        Type: 'ArrayUnoindNoTitle',
        Default: [
          { isPrescribed: false, value: 0.0 },
          { isPrescribed: false, value: 0.0 },
          { isPrescribed: false, value: 0.0 },
          { isPrescribed: false, value: 0.0 },
          { isPrescribed: false, value: 0.0 },
          { isPrescribed: false, value: 0.0 },
        ],
      },
      /*U1Type: {
        Type: 'option',
        Options: ['Unconstrained', 'Fixed', 'Customize'],
        Default: 'Unconstrained',
        EmitChange: true,
      },
      U1: {
        HandleChange: {
          U1Type: {
            Customize: {},
          },
        },
        Type: 'double',
        Default: 0.0,
        // Unit: ['mm'],
        // DefaultUnit: 'mm',
      },
      U2Type: {
        Type: 'option',
        Options: ['Unconstrained', 'Fixed', 'Customize'],
        Default: 'Unconstrained',
        EmitChange: true,
      },
      U2: {
        HandleChange: {
          U2Type: {
            Customize: {},
          },
        },
        Type: 'double',
        Default: 0.0,
        // Unit: ['mm'],
        // DefaultUnit: 'mm',
      },
      U3Type: {
        Type: 'option',
        Options: ['Unconstrained', 'Fixed', 'Customize'],
        Default: 'Unconstrained',
        EmitChange: true,
      },
      U3: {
        HandleChange: {
          U3Type: {
            Customize: {},
          },
        },
        Type: 'double',
        Default: 0.0,
        // Unit: ['mm'],
        // DefaultUnit: 'mm',
      },
      UR1Type: {
        Type: 'option',
        Options: ['Unconstrained', 'Customize'],
        Default: 'Unconstrained',
        EmitChange: true,
      },
      UR1: {
        HandleChange: {
          UR1Type: {
            Customize: {},
          },
        },
        Type: 'double',
        Default: 0.0,
        // Unit: ['rad'],
        // DefaultUnit: 'rad',
      },
      UR2Type: {
        Type: 'option',
        Options: ['Unconstrained', 'Customize'],
        Default: 'Unconstrained',
        EmitChange: true,
      },
      UR2: {
        HandleChange: {
          UR2Type: {
            Customize: {},
          },
        },
        Type: 'double',
        Default: 0.0,
        // Unit: ['rad'],
        // DefaultUnit: 'rad',
      },
      UR3Type: {
        Type: 'option',
        Options: ['Unconstrained', 'Customize'],
        Default: 'Unconstrained',
        EmitChange: true,
      },
      UR3: {
        HandleChange: {
          UR3Type: {
            Customize: {},
          },
        },
        Type: 'double',
        Default: 0.0,
        // Unit: ['rad'],
        // DefaultUnit: 'rad',
      },*/
    },
    /*SubmodelDOF: {
      Type: 'group',
      Label: 'DOF',
      HandleChange: {
        SelectType: {
          Submodel: {},
        },
      },
      U1: {
        Type: 'option',
        Options: ['Unconstrained', 'FromGlobalModel'],
        Default: 'Unconstrained',
      },
      U2: {
        Type: 'option',
        Options: ['Unconstrained', 'FromGlobalModel'],
        Default: 'Unconstrained',
      },
      U3: {
        Type: 'option',
        Options: ['Unconstrained', 'FromGlobalModel'],
        Default: 'Unconstrained',
      },
      UR1: {
        Type: 'option',
        Options: ['Unconstrained', 'FromGlobalModel'],
        Default: 'Unconstrained',
      },
      UR2: {
        Type: 'option',
        Options: ['Unconstrained', 'FromGlobalModel'],
        Default: 'Unconstrained',
      },
      UR3: {
        Type: 'option',
        Options: ['Unconstrained', 'FromGlobalModel'],
        Default: 'Unconstrained',
      },
    },*/
  },
};

const Loads = {
  AmcaxProp: {
    childCreatable: true, // 是否自动创建child
  },
  Loads: {
    AmcaxProp: BaseObjectAmcaxProp,
    SelectType: {
      Label: 'Type',
      Type: {
        ConcentratedForce: {
          RegionType: {
            Type: 'Node',
          },
          ForceComponents: {
            Type: 'group',
            F1: {
              Type: 'double',
              Default: 0.0,
              // Unit: ['N'],
              // DefaultUnit: 'N',
            },
            F2: {
              Type: 'double',
              Default: 0.0,
              // Unit: ['N'],
              // DefaultUnit: 'N',
            },
            F3: {
              Type: 'double',
              Default: 0.0,
              // Unit: ['N'],
              // DefaultUnit: 'N',
            },
          },
          ForceMagnitude: {
            Type: 'group',
            Magnitude: {
              Type: 'double',
              Default: 0.0,
              // Unit: ['N'],
              // DefaultUnit: 'N',
            },
          },
        },
        Moment: {
          RegionType: {
            Type: 'Node',
          },
          MomentComponents: {
            Type: 'group',
            M1: {
              Type: 'double',
              Default: 0.0,
              // Unit: ['N-mm'],
              // DefaultUnit: 'N-mm',
            },
            M2: {
              Type: 'double',
              Default: 0.0,
              // Unit: ['N-mm'],
              // DefaultUnit: 'N-mm',
            },
            M3: {
              Type: 'double',
              Default: 0.0,
              // Unit: ['N-mm'],
              // DefaultUnit: 'N-mm',
            },
          },
          MomentMagnitude: {
            Type: 'group',
            Magnitude: {
              Type: 'double',
              Default: 0.0,
              // Unit: ['N-mm'],
              // DefaultUnit: 'N-mm',
            },
          },
        },
        UniformPressure: {
          RegionType: {
            Type: 'Surface',
          },
          PressureMagnitude: {
            Type: 'group',
            Magnitude: {
              Type: 'double',
              Default: 0.0,
              // Unit: ['MPa'],
              // DefaultUnit: 'MPa',
            },
          },
        },
        HydrostaticPressure: {
          FirstPointCoordinates: {
            Type: 'group',
            X: {
              Type: 'double',
              Default: 0.0,
              // Unit: ['mm'],
              // DefaultUnit: 'mm',
            },
            Y: {
              Type: 'double',
              Default: 0.0,
              // Unit: ['mm'],
              // DefaultUnit: 'mm',
            },
            Z: {
              Type: 'double',
              Default: 0.0,
              // Unit: ['mm'],
              // DefaultUnit: 'mm',
            },
          },
          Magnitude: {
            Type: 'double',
            Default: 0.0,
            // Unit: ['MPa'],
            // DefaultUnit: 'MPa',
          },
          SecondPointCoordinates: {
            Type: 'group',
            X: {
              Type: 'double',
              Default: 0.0,
              // Unit: ['mm'],
              // DefaultUnit: 'mm',
            },
            Y: {
              Type: 'double',
              Default: 0.0,
              // Unit: ['mm'],
              // DefaultUnit: 'mm',
            },
            Z: {
              Type: 'double',
              Default: 0.0,
              // Unit: ['mm'],
              // DefaultUnit: 'mm',
            },
          },
        },
        /*ImportedPressure: {
          PressureMagnitude: {
            Type: 'group',
            ImportFromFile: {
              Type: 'double',
              Default: 0.0,
            },
            Interpolator: {
              Type: 'option',
              Options: ['ClosestPoint', 'ClosestNode'],
              Default: 'ClosestPoint',
            },
            MagnitudeFactor: {
              Type: 'double',
              Default: 1.0,
            },
          },
          ScaleFactor: {
            Type: 'double',
            Default: 1.0,
          },
        },*/
        SurfaceTraction: {
          RegionType: {
            Type: 'Surface',
          },
          ForceComponents: {
            Type: 'group',
            F1: {
              Type: 'double',
              Default: 0.0,
              // Unit: ['N'],
              // DefaultUnit: 'N',
            },
            F2: {
              Type: 'double',
              Default: 0.0,
              // Unit: ['N'],
              // DefaultUnit: 'N',
            },
            F3: {
              Type: 'double',
              Default: 0.0,
              // Unit: ['N'],
              // DefaultUnit: 'N',
            },
          },
          Magnitude: {
            Type: 'double',
            Default: 0.0,
            // Unit: ['N'],
            // DefaultUnit: 'N',
          },
        },
        NormalShellEdgeLoad: {
          RegionType: {
            Type: 'Node',
          },
          Magnitude: {
            Type: 'double',
            Default: 0.0,
            // Unit: ['N/mm'],
            // DefaultUnit: 'N/mm',
          },
        },
        Gravity: {
          RegionType: {
            Type: 'Element',
          },
          GravityComponents: {
            Type: 'group',
            F1: {
              Type: 'double',
              Default: 0.0,
              // Unit: ['mm/s^2'],
              // DefaultUnit: 'mm/s^2',
            },
            F2: {
              Type: 'double',
              Default: 0.0,
              // Unit: ['mm/s^2'],
              // DefaultUnit: 'mm/s^2',
            },
            F3: {
              Type: 'double',
              Default: 0.0,
              // Unit: ['mm/s^2'],
              // DefaultUnit: 'mm/s^2',
            },
          },
          Magnitude: {
            Type: 'double',
            Default: 0.0,
            // Unit: ['mm/s^2'],
            // DefaultUnit: 'mm/s^2',
          },
        },
        CentrifugalLoad: {
          RegionType: {
            Type: 'Node',
          },
          RotationCenterCoordinates: {
            Type: 'group',
            X: {
              Type: 'double',
              Default: 0.0,
              // Unit: ['mm'],
              // DefaultUnit: 'mm',
            },
            Y: {
              Type: 'double',
              Default: 0.0,
              // Unit: ['mm'],
              // DefaultUnit: 'mm',
            },
            Z: {
              Type: 'double',
              Default: 0.0,
              // Unit: ['mm'],
              // DefaultUnit: 'mm',
            },
          },
          RotationAxisCoordinates: {
            Type: 'group',
            X: {
              Type: 'double',
              Default: 0.0,
              // Unit: ['mm'],
              // DefaultUnit: 'mm',
            },
            Y: {
              Type: 'double',
              Default: 0.0,
              // Unit: ['mm'],
              // DefaultUnit: 'mm',
            },
            Z: {
              Type: 'double',
              Default: 0.0,
              // Unit: ['mm'],
              // DefaultUnit: 'mm',
            },
          },
          Magnitude: {
            Type: 'double',
            Default: 0.0,
            // Unit: ['rad/s'],
            // DefaultUnit: 'rad/s',
          },
        },
        PreTension: {
          // RotationCenterCoordinates: {
          //   Type: 'group',
          //
          // },
          RegionType: {
            Type: 'Node',
          },
          AutoCompute: {
            Type: {
              Yes: {},
              No: {
                X: {
                  Type: 'double',
                  Default: 0.0,
                  // Unit: ['mm'],
                  // DefaultUnit: 'mm',
                },
                Y: {
                  Type: 'double',
                  Default: 0.0,
                  // Unit: ['mm'],
                  // DefaultUnit: 'mm',
                },
                Z: {
                  Type: 'double',
                  Default: 0.0,
                  // Unit: ['mm'],
                  // DefaultUnit: 'mm',
                },
              },
            },
          },
          Magnitude: {
            Type: 'group',
            Force: {
              Type: 'double',
              Default: 0.0,
              // Unit: ['N'],
              // DefaultUnit: 'N',
            },
          },
        },
      },
    },
  },
};

const stepsPublic = {
  /*Solver: {
    Type: 'option',
    Options: [
      'Defalut',
      'PoStiX',
      'Pardiso',
      'Spooles',
      'IterativeScaling',
      'IterativeCholesky',
    ],
    Default: 'Defalut',
  },*/
  OutputFrequencyType: {
    Type: 'option',
    Options: ['Default', 'Customize'],
    Default: 'Default',
    EmitChange: true,
  },
  OutputFrequency: {
    HandleChange: {
      OutputFrequencyType: {
        Customize: {},
      },
    },
    Type: 'double',
    Default: 1.0,
  },
};
export const CalculiX = {
  materials: {
    AmcaxProp: {
      childCreatable: true, // 是否可以添加新的子项
    },
    Materials: {
      AmcaxProp: BaseObjectAmcaxProp,
      Models: {
        EmitChange: true,
        Type: 'multiSelectTree',
        multiple: true,
        Options: [
          {
            value: 'General',
            title: 'General',
            disabled: true,
            children: [
              {
                value: 'Densities',
                title: 'Densities',
              },
              /* {
                value: 'SlipWear',
                title: 'SlipWear',
              },*/
            ],
          },
          {
            value: 'Elasticity',
            title: 'Elasticity',
            disabled: true,
            children: [
              {
                value: 'Elastic',
                title: 'Elastic',
              },
            ],
          },
          {
            value: 'Plasticity',
            title: 'Plasticity',
            disabled: true,
            children: [
              {
                value: 'Plastic',
                title: 'Plastic',
              },
            ],
          },
          /*{
            value: 'Thermal',
            title: 'Thermal',
            disabled: true,
            children: [
              {
                value: 'ThermalExpansion',
                title: 'ThermalExpansion',
              },
              {
                value: 'ThrmalConductivity',
                title: 'ThrmalConductivity',
              },
              {
                value: 'SpecificHeat',
                title: 'SpecificHeat',
              },
            ],
          },*/
        ],
      },
      Densities: {
        HandleChange: {
          Models: {
            Densities: {},
          },
        },
        Type: 'group',
        Densities: {
          Type: 'double',
          Default: 0.0,
          // Unit: ['t/mm^3'],
          // DefaultUnit: 't/mm^3',
        },
      },
      Elastic: {
        HandleChange: {
          Models: {
            Elastic: {},
          },
        },
        Type: 'group',
        SelectType: {
          Label: 'Type',
          Type: {
            ISO: {
              Type: 'group',
              ISO: {
                Type: 'dynamicTable',
                Columns: [
                  {
                    title: 'E',
                    dataIndex: 'E',
                    width: 80,
                  },
                  {
                    title: 'v',
                    dataIndex: 'v',
                    width: 80,
                  },
                  {
                    title: 'T/K',
                    dataIndex: 'T',
                    width: 80,
                  },
                ],
                Default: [
                  /* {
                    e: [0],
                  },
                  {
                    v: [0],
                  },
                  {
                    T: [298],
                  },*/
                ],
              },
            },
            ORTHO: {
              Type: 'group',
              ORTHO: {
                Type: 'dynamicTable',
                Columns: [
                  {
                    title: 'D1111',
                    dataIndex: 'D1111',
                    width: 89,
                  },
                  {
                    title: 'D1122',
                    width: 89,
                    dataIndex: 'D1122',
                  },
                  {
                    title: 'D2222',
                    width: 89,
                    dataIndex: 'D2222',
                  },
                  {
                    title: 'D1133',
                    width: 89,
                    dataIndex: 'D1133',
                  },
                  {
                    title: 'D2233',
                    width: 89,
                    dataIndex: 'D2233',
                  },
                  {
                    title: 'D3333',
                    width: 89,
                    dataIndex: 'D3333',
                  },
                  {
                    title: 'D1212',
                    width: 89,
                    dataIndex: 'D1212',
                  },
                  {
                    title: 'D1313',
                    width: 89,
                    dataIndex: 'D1313',
                  },
                  {
                    title: 'D2323',
                    width: 89,
                    dataIndex: 'D2323',
                  },
                  {
                    title: 'T/K',
                    width: 89,
                    dataIndex: 'T',
                  },
                ],
                Default: [
                  /*{
                    D1111: [0],
                  },
                  {
                    D1122: [0],
                  },
                  {
                    D2222: [0],
                  },
                  {
                    D1133: [0],
                  },
                  {
                    D2233: [0],
                  },
                  {
                    D3333: [0],
                  },
                  {
                    D1212: [0],
                  },
                  {
                    D1313: [0],
                  },
                  {
                    D2323: [0],
                  },
                  {
                    T: [0],
                  },*/
                ],
              },
            },
            'ENGINEERING CONSTANTS': {
              Type: 'group',
              'ENGINEERING CONSTANTS': {
                Type: 'dynamicTable',
                Columns: [
                  {
                    title: 'E1',
                    dataIndex: 'E1',
                    width: 89,
                  },
                  {
                    title: 'E2',
                    width: 89,
                    dataIndex: 'E2',
                  },
                  {
                    title: 'E3',
                    width: 89,
                    dataIndex: 'E3',
                  },
                  {
                    title: 'v12',
                    width: 89,
                    dataIndex: 'v12',
                  },
                  {
                    title: 'v13',
                    width: 89,
                    dataIndex: 'v13',
                  },
                  {
                    title: 'v23',
                    width: 89,
                    dataIndex: 'v23',
                  },
                  {
                    title: 'G12',
                    width: 89,
                    dataIndex: 'G12',
                  },
                  {
                    title: 'G13',
                    width: 89,
                    dataIndex: 'G13',
                  },
                  {
                    title: 'G23',
                    width: 89,
                    dataIndex: 'G23',
                  },
                  {
                    title: 'T/K',
                    width: 89,
                    dataIndex: 'T',
                  },
                ],
                Default: [
                  /* {
                    E1: [0],
                  },
                  {
                    E2: [0],
                  },
                  {
                    E3: [0],
                  },
                  {
                    v12: [0],
                  },
                  {
                    v13: [0],
                  },
                  {
                    v23: [0],
                  },
                  {
                    G12: [0],
                  },
                  {
                    G13: [0],
                  },
                  {
                    G23: [0],
                  },
                  {
                    T: [0],
                  },*/
                ],
              },
            },
            ANISO: {
              Type: 'group',
              ANISO: {
                Type: 'dynamicTable',
                Columns: [
                  {
                    title: 'D1111',
                    dataIndex: 'D1111',
                    width: 89,
                  },
                  {
                    title: 'D1122',
                    width: 89,
                    dataIndex: 'D1122',
                  },
                  {
                    title: 'D2222',
                    width: 89,
                    dataIndex: 'D2222',
                  },
                  {
                    title: 'D1133',
                    width: 89,
                    dataIndex: 'D1133',
                  },
                  {
                    title: 'D2233',
                    width: 89,
                    dataIndex: 'D2233',
                  },
                  {
                    title: 'D3333',
                    width: 89,
                    dataIndex: 'D3333',
                  },
                  {
                    title: 'D1112',
                    width: 89,
                    dataIndex: 'D1112',
                  },
                  {
                    title: 'D2212',
                    width: 89,
                    dataIndex: 'D2212',
                  },
                  {
                    title: 'D3312',
                    width: 89,
                    dataIndex: 'D3312',
                  },
                  {
                    title: 'D1212',
                    width: 89,
                    dataIndex: 'D1212',
                  },
                  {
                    title: 'D1113',
                    width: 89,
                    dataIndex: 'D1113',
                  },
                  {
                    title: 'D2213',
                    width: 89,
                    dataIndex: 'D2213',
                  },
                  {
                    title: 'D3313',
                    width: 89,
                    dataIndex: 'D3313',
                  },
                  {
                    title: 'D1213',
                    width: 89,
                    dataIndex: 'D1213',
                  },
                  {
                    title: 'D1313',
                    width: 89,
                    dataIndex: 'D1313',
                  },
                  {
                    title: 'D1123',
                    width: 89,
                    dataIndex: 'D1123',
                  },
                  {
                    title: 'D2223',
                    width: 89,
                    dataIndex: 'D2223',
                  },
                  {
                    title: 'D3323',
                    width: 89,
                    dataIndex: 'D3323',
                  },
                  {
                    title: 'D1223',
                    width: 89,
                    dataIndex: 'D1223',
                  },
                  {
                    title: 'D1323',
                    width: 89,
                    dataIndex: 'D1323',
                  },
                  {
                    title: 'D2323',
                    width: 89,
                    dataIndex: 'D2323',
                  },
                  {
                    title: 'T/K',
                    width: 89,
                    dataIndex: 'T',
                  },
                ],
                Default: [
                  /*{
                    D1111: [0],
                  },
                  {
                    D1122: [0],
                  },
                  {
                    D2222: [0],
                  },
                  {
                    D1133: [0],
                  },
                  {
                    D2233: [0],
                  },
                  {
                    D3333: [0],
                  },
                  {
                    D1112: [0],
                  },
                  {
                    D2212: [0],
                  },
                  {
                    D3312: [0],
                  },
                  {
                    D1212: [0],
                  },
                  {
                    D1113: [0],
                  },
                  {
                    D2213: [0],
                  },
                  {
                    D3313: [0],
                  },
                  {
                    D1213: [0],
                  },
                  {
                    D1313: [0],
                  },
                  {
                    D1123: [0],
                  },
                  {
                    D2223: [0],
                  },
                  {
                    D3323: [0],
                  },
                  {
                    D1223: [0],
                  },
                  {
                    D1323: [0],
                  },
                  {
                    D2323: [0],
                  },
                  {
                    T: [0],
                  },*/
                ],
              },
            },
          },
          Default: 'ISO',
        },
      },
      Plastic: {
        HandleChange: {
          Models: {
            Plastic: {},
          },
        },
        Type: 'group',
        Properties: {
          Type: 'option',
          Options: ['Isotropic', 'Kinematic', 'Combined'],
          Default: 'Isotropic',
        },
        DataPoints: {
          Type: 'dynamicTable',
          Columns: [
            {
              title: 'Yield stress[MPa]',
              dataIndex: 'YieldStress',
            },
            {
              title: 'Plastic strain[/]',
              dataIndex: 'PlasticStrain',
            },
          ],
          Default: [
            /*{
              YieldStress: [0],
            },
            {
              PlasticStrain: [0],
            },*/
          ],
        },
      },
      /*SlipWear: {
        HandleChange: {
          Models: {
            SlipWear: {},
          },
        },
        Type: 'group',
        Hardness: {
          Type: 'double',
          Default: 0.0,
          // Unit: ['MPa'],
          // DefaultUnit: 'MPa',
        },
        WearCoefficient: {
          Type: 'double',
          Default: 0.0,
        },
      },
      ThermalExpansion: {
        HandleChange: {
          Models: {
            ThermalExpansion: {},
          },
        },
        Type: 'group',
        ThermalExpansion: {
          Type: 'double',
          Default: 0.0,
          // Unit: ['°C^-1'],
          // DefaultUnit: '°C^-1',
        },
        ZeroTemperature: {
          Type: 'double',
          Default: 20.0,
          // Unit: ['°C'],
          // DefaultUnit: '°C',
        },
      },
      ThrmalConductivity: {
        HandleChange: {
          Models: {
            ThrmalConductivity: {},
          },
        },
        Type: 'group',
        ThrmalConductivity: {
          Type: 'double',
          Default: 0.0,
          // Unit: ['mW/mm·°C'],
          // DefaultUnit: 'mW/mm·°C',
        },
      },
      SpecificHeat: {
        HandleChange: {
          Models: {
            SpecificHeat: {},
          },
        },
        Type: 'group',
        SpecificHeat: {
          Type: 'double',
          Default: 0.0,
          // Unit: ['mW/(mm·°C)'],
          // DefaultUnit: 'mJ/(t·°C)',
        },
      },*/
    },
  },
  properties: {
    AmcaxProp: {
      childCreatable: true, // 是否可以添加新的子项
    },
    Properties: {
      AmcaxProp: BaseObjectAmcaxProp,
      SelectType: {
        Label: 'Type',
        Type: 'option',
        Options: [
          'SolidSection',
          'ShellSection',
          'MembraneSection',
          'BeamSection',
          'Mass',
          'Spring',
          'Dashpot',
        ],
        Default: 'SolidSection',
        EmitChange: true,
      },
      SolidSection: {
        HandleChange: {
          SelectType: {
            SolidSection: {},
          },
        },
        Type: 'group',
        Material: {
          Type: 'materialSet',
        },
        Region: {
          Type: 'nextmesh',
        },
      },
      ShellSection: {
        HandleChange: {
          SelectType: {
            ShellSection: {},
          },
        },
        Type: 'group',
        Material: {
          Type: 'materialSet',
        },
        Thickness: {
          Type: 'double',
          Default: 1.0,
          // Unit: ['mm'],
          // DefaultUnit: 'mm',
        },
        Offset: {
          Type: 'double',
          Default: 0.0,
        },
        Region: {
          Type: 'nextmesh',
        },
      },
      MembraneSection: {
        HandleChange: {
          SelectType: {
            MembraneSection: {},
          },
        },
        Type: 'group',
        Material: {
          Type: 'materialSet',
        },
        Thickness: {
          Type: 'double',
          Default: 1.0,
          // Unit: ['mm'],
          // DefaultUnit: 'mm',
        },
        Offset: {
          Type: 'double',
          Default: 0.0,
        },
        Region: {
          Type: 'nextmesh',
        },
      },
      BeamSection: {
        HandleChange: {
          SelectType: {
            BeamSection: {},
          },
        },
        Type: 'group',
        Material: {
          Type: 'materialSet',
        },
        RegionType: {
          Type: 'Node',
        },
        ORIENATION: {
          Type: 'ArrayNoLabel',
          Default: [0.0, 0.0, 0.0],
        },
        Section: {
          Type: {
            RECT: {
              RECT: {
                Type: 'group',
                a: {
                  Type: 'double',
                  Default: 0,
                },
                b: {
                  Type: 'double',
                  Default: 0,
                },
              },
            },
            CIRC: {
              CIRC: {
                Type: 'group',
                r1: {
                  Type: 'double',
                  Default: 0,
                },
                r2: {
                  Type: 'double',
                  Default: 0,
                },
              },
            },
            PIPE: {
              PIPE: {
                Type: 'group',
                r: {
                  Type: 'double',
                  Default: 0,
                },
                T: {
                  Type: 'double',
                  Default: 0,
                },
              },
            },
            BOX: {
              BOX: {
                Type: 'group',
                a: {
                  Type: 'double',
                  Default: 0,
                },
                b: {
                  Type: 'double',
                  Default: 0,
                },
                t1: {
                  Type: 'double',
                  Default: 0,
                },
                t2: {
                  Type: 'double',
                  Default: 0,
                },
                t3: {
                  Type: 'double',
                  Default: 0,
                },
                t4: {
                  Type: 'double',
                  Default: 0,
                },
              },
            },
          },
        },
      },
      Mass: {
        HandleChange: {
          SelectType: {
            Mass: {},
          },
        },
        Type: 'group',
        mass: {
          Type: 'double',
          Default: 0,
          // Unit: ['t'],
          // DefaultUnit: 't',
        },
        RegionType: {
          Type: 'Node',
        },
      },
      Spring: {
        HandleChange: {
          SelectType: {
            Spring: {},
          },
        },
        Type: 'group',
        RegionType: {
          Type: 'nextmesh',
        },
        SelectType: {
          label: 'Type',
          Type: {
            LINEAR: {
              Type: 'group',
              LINEAR: {
                Type: 'dynamicTable',
                Columns: [
                  {
                    title: 'K',
                    dataIndex: 'K',
                    width: 80,
                  },
                  {
                    title: 'T/K',
                    dataIndex: 'T',
                    width: 80,
                  },
                ],
                Default: [
                  /*{
                    K: [0],
                  },
                  {
                    T: [0],
                  },*/
                ],
              },
            },
            NONLINEAR: {
              Type: 'group',
              NONLINEAR: {
                Type: 'dynamicTable',
                Columns: [
                  {
                    title: 'Force',
                    dataIndex: 'force',
                    width: 80,
                  },
                  {
                    title: 'Elongation',
                    dataIndex: 'elongation',
                    width: 80,
                  },
                  {
                    title: 'T/K',
                    dataIndex: 'T',
                    width: 80,
                  },
                ],
                Default: [
                  /*{
                    force: [0],
                  },
                  {
                    elongation: [0],
                  },
                  {
                    T: [0],
                  },*/
                ],
              },
            },
          },
        },
      },
      Dashpot: {
        HandleChange: {
          SelectType: {
            Dashpot: {},
          },
        },
        Type: 'group',
        RegionType: {
          Type: 'Node',
        },
        Dashpot: {
          Type: 'dynamicTable',
          Columns: [
            {
              title: 'DashpotConstant',
              dataIndex: 'dashpotConstant',
              width: 80,
            },
            {
              title: 'Frequency',
              dataIndex: 'frequency',
              width: 80,
            },
            {
              title: 'T/K',
              dataIndex: 'T',
              width: 80,
            },
          ],
          Default: [
            /*{
              dashpotConstant: [0],
            },
            {
              frequency: [0],
            },
            {
              T: [0],
            },*/
          ],
        },
      },
    },
  },
  constraints: {
    AmcaxProp: {
      childCreatable: true, // 是否可以添加新的子项
    },
    Constraints: {
      AmcaxProp: BaseObjectAmcaxProp,
      SelectType: {
        Type: 'option',
        Options: [
          // 'PointSpring',
          // 'SurfaceSpring',
          // 'CompressionOnly',
          'Tie',
          'RigidBody',
        ],
        Default: 'Tie',
        EmitChange: true,
      },
      Tie: {
        Type: 'group',
        HandleChange: {
          SelectType: {
            Tie: {},
          },
        },
        PositionToleranceType: {
          Type: 'option',
          Options: ['Default', 'Customize'],
          Default: 'Default',
          EmitChange: true,
        },
        PositionTolerance: {
          HandleChange: {
            PositionToleranceType: {
              Customize: {},
            },
          },
          Type: 'double',
          Default: 0.05,
          // Unit: ['mm'],
          // DefaultUnit: 'mm',
        },
        Adjust: {
          Type: 'option',
          Options: ['Yes', 'No'],
          Default: 'Yes',
        },
        MasterRegion: {
          Type: 'Surface',
        },
        SlaveRegion: {
          Type: 'Surface',
        },
      },
      RigidBody: {
        Type: 'group',
        HandleChange: {
          SelectType: {
            RigidBody: {},
          },
        },
        ReferPoint: {
          Type: 'ReferPoint',
        },
        RegionType: {
          Type: 'Node',
        },
      },
      /* PointSpring: {
        Type: 'group',
        HandleChange: {
          SelectType: {
            PointSpring: {},
          },
        },
        Region: {
          Type: 'Node',
        },
        Stiffness: {
          Type: 'group',
          K1: {
            Type: 'double',
            Default: 0.0,
            // Unit: ['N/mm'],
            // DefaultUnit: 'N/mm',
          },
          K2: {
            Type: 'double',
            Default: 0.0,
            // Unit: ['N/mm'],
            // DefaultUnit: 'N/mm',
          },
          K3: {
            Type: 'double',
            Default: 0.0,
            // Unit: ['N/mm'],
            // DefaultUnit: 'N/mm',
          },
        },
      },
      SurfaceSpring: {
        Type: 'group',
        HandleChange: {
          SelectType: {
            SurfaceSpring: {},
          },
        },
        Region: {
          Type: 'Node',
        },
        StiffnessPerArea: {
          Type: {
            No: {
              Stiffness: {
                Type: 'group',
                K1: {
                  Type: 'double',
                  Default: 0.0,
                  // Unit: ['N/mm'],
                  // DefaultUnit: 'N/mm',
                },
                K2: {
                  Type: 'double',
                  Default: 0.0,
                  // Unit: ['N/mm'],
                  // DefaultUnit: 'N/mm',
                },
                K3: {
                  Type: 'double',
                  Default: 0.0,
                  // Unit: ['N/mm'],
                  // DefaultUnit: 'N/mm',
                },
              },
            },
            Yes: {
              StiffnessPerArea: {
                Type: 'group',
                K1: {
                  Type: 'double',
                  Default: 0.0,
                  // Unit: ['N/mm^3'],
                  // DefaultUnit: 'N/mm^3',
                },
                K2: {
                  Type: 'double',
                  Default: 0.0,
                  // Unit: ['N/mm^3'],
                  // DefaultUnit: 'N/mm^3',
                },
                K3: {
                  Type: 'double',
                  Default: 0.0,
                  // Unit: ['N/mm^3'],
                  // DefaultUnit: 'N/mm^3',
                },
              },
            },
          },
          Default: 'No',
        },
      },
      CompressionOnly: {
        Type: 'group',
        HandleChange: {
          SelectType: {
            CompressionOnly: {},
          },
        },
        Region: {
          Type: 'Node',
        },
        SpringStiffnessType: {
          Type: 'option',
          Options: ['Default', 'Customize'],
          Default: 'Default',
          EmitChange: true,
        },
        StickSlope: {
          HandleChange: {
            SpringStiffnessType: {
              Customize: {},
            },
          },
          Type: 'double',
          Default: 1000000000000.0,
          // Unit: ['N/mm'],
          // DefaultUnit: 'N/mm',
        },
        TensileForceType: {
          Type: 'option',
          Options: ['Default', 'Customize'],
          Default: 'Default',
          EmitChange: true,
        },
        TensileForce: {
          HandleChange: {
            TensileForceType: {
              Customize: {},
            },
          },
          Type: 'double',
          Default: 0.01,
          // Unit: ['N'],
          // DefaultUnit: 'N',
        },
        Offset: {
          Type: 'double',
          Default: 0.0,
          // Unit: ['mm'],
          // DefaultUnit: 'mm',
        },
      },*/
    },
  },
  contacts: {
    AmcaxProp: {
      autoCreateChild: true, // 是否自动创建child
    },
    SurfaceInteraction: {
      AmcaxProp: {
        childCreatable: true,
      },
      SurfaceInteraction: {
        AmcaxProp: BaseObjectAmcaxProp,
        SurfaceInteraction: {
          Type: 'option',
          Options: ['Friction', 'GapConductance', 'SurfaceBehavior'],
          multiple: true,
          EmitChange: true,
        },
        Friction: {
          Type: 'group',
          HandleChange: {
            SurfaceInteraction: {
              Friction: {},
            },
          },
          FrictionCoefficient: {
            Type: 'double',
            Default: 0.1,
          },
          StickSlopeType: {
            Type: {
              Default: {},
              Customize: {
                StickSlope: {
                  Type: 'double',
                  Default: 100000.0,
                  // Unit: ['N/mm^3'],
                  // DefaultUnit: 'N/mm^3',
                },
              },
            },
          },
        },
        GapConductance: {
          Type: 'group',
          HandleChange: {
            SurfaceInteraction: {
              GapConductance: {},
            },
          },
          SelectType: {
            Type: {
              Constant: {
                Type: 'group',
                Conductance: {
                  Type: 'double',
                  Default: 0.0,
                  // Unit: ['mW/mm^3·°C'],
                  // DefaultUnit: 'mW/mm^3·°C',
                },
              },
              Tabular: {
                Type: 'group',
                Tabular: {
                  Type: 'dynamicTable',
                  Columns: [
                    {
                      title: 'Overclosure[mm]',
                      dataIndex: 'Overclosure',
                      width: 80,
                    },
                    {
                      title: 'Pressure[Mpa]',
                      dataIndex: 'Pressure',
                      width: 80,
                    },
                    {
                      title: 'Temperature[°C]',
                      dataIndex: 'Temperature',
                      width: 80,
                    },
                  ],
                  Default: [
                    /*{
                      Overclosure: [0],
                    },
                    {
                      Pressure: [0],
                    },
                    {
                      Temperature: [0],
                    },*/
                  ],
                },
              },
            },
            Default: 'Constant',
          },
        },
        SurfaceBehavior: {
          Type: 'group',
          HandleChange: {
            SurfaceInteraction: {
              SurfaceBehavior: {},
            },
          },
          PropertiesType: {
            Type: {
              Hard: {},
              Linear: {
                Type: 'group',
                K: {
                  Type: 'double',
                  Default: 10000000.0,
                  // Unit: ['N/mm^3'],
                  // DefaultUnit: 'N/mm^3',
                },
                infinity: {
                  Type: 'double',
                  Default: 2.86,
                  // Unit: ['MPa'],
                  // DefaultUnit: 'MPa',
                },
                CoType: {
                  lable: 'C0Type',
                  Type: 'option',
                  Options: ['Default', 'Customize'],
                  Default: 'Default',
                  EmitChange: true,
                },
                C0: {
                  Type: 'double',
                  HandleChange: {
                    CoType: {
                      Customize: {},
                    },
                  },
                  Default: 1.0,
                },
              },
              Exponential: {
                Type: 'group',
                Po: {
                  Type: 'double',
                  Default: 0.1,
                  // Unit: ['MPa'],
                  // DefaultUnit: 'MPa',
                },
                C0: {
                  Type: 'double',
                  Default: 1.0,
                  // Unit: ['mm'],
                  // DefaultUnit: 'mm',
                },
              },
              Tabular: {
                Type: 'group',
                Tabular: {
                  Type: 'dynamicTable',
                  Columns: [
                    {
                      title: 'Pressure',
                      dataIndex: 'Pressure',
                      width: 42,
                    },
                    {
                      title: 'Overclosure',
                      dataIndex: 'Overclosure',
                      width: 58,
                    },
                  ],
                  Default: [],
                },
              },
              Tied: {
                Type: 'group',
                K: {
                  Type: 'double',
                  Default: 10000000.0,
                  // Unit: ['N/mm^3'],
                  // DefaultUnit: 'N/mm^3',
                },
              },
            },
          },
        },
      },
    },
    ContactPairs: {
      AmcaxProp: {
        childCreatable: true,
      },
      ContactPairs: {
        AmcaxProp: BaseObjectAmcaxProp,
        SurfaceInteraction: {
          Type: 'surfaceInteractionSet',
        },
        Method: {
          Type: 'option',
          Options: [
            'Node To Surface',
            'SurfaceToSurface',
            'Mortar',
            'LinearMortar',
            'PGLinearMortar',
          ],
          Default: 'Node To Surface',
          EmitChange: true,
        },
        SmallSliding: {
          HandleChange: {
            Method: {
              'Node To Surface': {},
            },
          },
          Type: 'option',
          Options: ['Yes', 'No'],
          Defalut: 'No',
        },
        Adjust: {
          Type: 'option',
          Options: ['Yes', 'No'],
          Defalut: 'No',
          EmitChange: true,
        },
        AdjustmentSizeType: {
          HandleChange: {
            Adjust: {
              Yes: {},
            },
          },
          Type: 'option',
          Options: ['Defalut', 'Customize'],
          Defalut: 'Defalut',
          EmitChange: true,
        },
        AdjustmentSize: {
          HandleChange: {
            AdjustmentSizeType: {
              Customize: {},
            },
          },
          Type: 'double',
          Default: 0.01,
          // Unit: ['mm'],
          // DefaultUnit: 'mm',
        },
        MasterRegion: {
          Type: 'Surface',
        },
        SlaveRegion: {
          Type: 'Surface',
        },
      },
    },
  },
  Amplitude: {
    AmcaxProp: {
      childCreatable: true, // 是否可以添加新的子项
    },
    Amplitude: {
      AmcaxProp: BaseObjectAmcaxProp,
      Properties: {
        Type: 'group',
        TimeSpan: {
          Type: 'option',
          Options: ['StepTime', 'TotialTime'],
          Default: 'StepTime',
        },
        Modify: {
          Type: 'group',
          ShiftTime: {
            Type: 'double',
            Default: 0.0,
          },
          ShiftAmplitude: {
            Type: 'double',
            Default: 0.0,
          },
        },
      },
      DataPoints: {
        Type: 'dynamicTable',
        Columns: [
          {
            title: 'Time[s] Frequency [Hz]',
            dataIndex: 'TimeFrequency',
          },
          {
            title: 'Amplitude[/]',
            dataIndex: 'Amplitude',
          },
        ],
        Default: [
          /*{
            TimeFrequency: [0],
          },
          {
            Amplitude: [0],
          },*/
        ],
      },
    },
  },
  InitialConditions: {
    AmcaxProp: {
      childCreatable: true, // 是否可以添加新的子项
    },
    InitialConditions: {
      AmcaxProp: BaseObjectAmcaxProp,
      SelectType: {
        Type: 'option',
        Options: ['Temperature', 'Velocity'],
        Default: 'Temperature',
        EmitChange: true,
      },
      RegionType: {
        Type: 'Node',
      },
      Temperature: {
        HandleChange: {
          SelectType: {
            Temperature: {},
          },
        },
        Type: 'double',
        Default: 0.0,
        // Unit: ['°C'],
        // DefaultUnit: '°C',
      },
      VelocityComponents: {
        HandleChange: {
          SelectType: {
            Velocity: {},
          },
        },
        Type: 'group',
        V1: {
          Type: 'double',
          Default: 0.0,
          // Unit: ['mm/s'],
          // DefaultUnit: 'mm/s',
        },
        V2: {
          Type: 'double',
          Default: 0.0,
          // Unit: ['mm/s'],
          // DefaultUnit: 'mm/s',
        },
        V3: {
          Type: 'double',
          Default: 0.0,
          // Unit: ['mm/s'],
          // DefaultUnit: 'mm/s',
        },
      },
      /*VelocityMagnitude: {
        HandleChange: {
          SelectType: {
            Velocity: {},
          },
        },
        Type: 'group',
        Magnitude: {
          Type: 'double',
          Default: 0.0,
          // Unit: ['mm/s'],
          // DefaultUnit: 'mm/s',
        },
      },*/
    },
  },
  steps: {
    AmcaxProp: {
      childCreatable: true,
    },
    StaticStep: {
      AmcaxProp: {
        autoCreateChild: true, // 是否自动创建child
        selfEditKey: 'StaticStep', // 设置编辑自己
        deletable: true, // 是否删除
      },
      StaticStep: {
        AmcaxProp: BaseObjectAmcaxProp, //
        Nigeom: {
          Type: 'option',
          Options: ['Yes', 'No'],
          Default: 'Yes',
        },
        IncrementaionType: {
          Type: {
            Default: {},
            Automatic: {
              Automatic: {
                Type: 'group',
                MaxIncrements: {
                  Type: 'double',
                  Default: 100,
                },
                TimePeriod: {
                  Type: 'double',
                  Default: 1.0,
                  // Unit: ['s'],
                  // DefaultUnit: 's',
                },
                InitialTimeIncrement: {
                  Type: 'double',
                  Default: 1.0,
                  // Unit: ['s'],
                  // DefaultUnit: 's',
                },
                MinTimeIncrement: {
                  Type: 'double',
                  Default: 1e-5,
                  // Unit: ['s'],
                  // DefaultUnit: 's',
                },
                MaxTimeIncrement: {
                  Type: 'double',
                  Default: 1e30,
                  // Unit: ['s'],
                  // DefaultUnit: 's',
                },
              },
            },
            Direct: {
              Direct: {
                Type: 'group',
                MaxIncrements: {
                  Type: 'double',
                  Default: 100,
                },
                TimePeriod: {
                  Type: 'double',
                  Default: 1.0,
                  // Unit: ['s'],
                  // DefaultUnit: 's',
                },
                InitialTimeIncrement: {
                  Type: 'double',
                  Default: 1.0,
                  // Unit: ['s'],
                  // DefaultUnit: 's',
                },
              },
            },
          },
          Default: 'Default',
        },
        ...stepsPublic,
      },
      BCs,
      Loads,
    },
    FrequencyStep: {
      AmcaxProp: {
        autoCreateChild: true, // 是否自动创建child
        selfEditKey: 'FrequencyStep', // 设置编辑自己
        deletable: true,
      },
      FrequencyStep: {
        AmcaxProp: BaseObjectAmcaxProp, // 自身可编辑
        Perturbation: {
          Type: 'option',
          Options: ['Off', 'On'],
          Default: 'Off',
        },
        Storage: {
          Type: 'option',
          Options: ['Yes', 'No'],
          Default: 'No',
        },
        NumberOfFrequencies: {
          Type: 'double',
          Default: 10.0,
        },
        LowerFrequencyBoundType: {
          Type: 'option',
          Options: ['Default', 'Customize'],
          Default: 'Default',
          EmitChange: true,
        },
        LowerFrequencyBound: {
          HandleChange: {
            LowerFrequencyBoundType: {
              Customize: {},
            },
          },
          Type: 'double',
          Default: 0.0,
          // Unit: ['Hz'],
          // DefaultUnit: 'Hz',
        },
        UpperFrequencyBoundType: {
          Type: 'option',
          Options: ['Default', 'Customize'],
          Default: 'Default',
          EmitChange: true,
        },
        UpperFrequencyBound: {
          HandleChange: {
            UpperFrequencyBoundType: {
              Customize: {},
            },
          },
          Type: 'double',
          Default: 0.0,
          // Unit: ['Hz'],
          // DefaultUnit: 'Hz',
        },
        ...stepsPublic,
      },
      BCs,
      Loads,
    },
    ModalDynamicsStep: {
      AmcaxProp: {
        autoCreateChild: true, // 是否自动创建child
        selfEditKey: 'ModalDynamicsStep', // 设置编辑自己
        deletable: true,
      },
      ModalDynamicsStep: {
        AmcaxProp: BaseObjectAmcaxProp, // 自身可编辑
        Perturbation: {
          Type: 'option',
          Options: ['Off', 'On'],
          Default: 'Off',
        },
        SteadyState: {
          Type: 'option',
          Options: ['Off', 'On'],
          Default: 'Off',
        },
        DampingType: {
          Type: 'option',
          Options: ['Off', 'On'],
          Default: 'Off',
        },
        Incrementation: {
          Type: 'group',
          MaxIncrements: {
            Type: 'double',
            Default: 100.0,
          },
          InitialTimeIncrement: {
            Type: 'double',
            Default: 0.01,
            // Unit: ['s'],
            // DefaultUnit: 's',
          },
          TimePeriod: {
            Type: 'double',
            Default: 1.0,
            // Unit: ['s'],
            // DefaultUnit: 's',
          },
        },
        ...stepsPublic,
      },
      BCs,
      Loads,
    },
    DynamicStep: {
      AmcaxProp: {
        autoCreateChild: true, // 是否自动创建child
        selfEditKey: 'DynamicStep', // 设置编辑自己
        deletable: true,
      },
      DynamicStep: {
        AmcaxProp: BaseObjectAmcaxProp, // 自身可编辑
        Nigeom: {
          Type: 'option',
          Options: ['Off', 'On'],
          Default: 'Off',
        },
        Alpha: {
          Type: 'double',
          Default: -0.05,
        },
        SolutionProcedure: {
          Type: 'option',
          Options: [
            'Implicit/Implicot',
            'Implicit/Explicit',
            'Explicit/Implicit',
            'Explicit/Explicit',
          ],
          Default: 'Off',
        },
        RelationToAbsolute: {
          Type: 'option',
          Options: ['Off', 'On'],
          Default: 'Off',
        },
        Damping: {
          Type: 'group',
          DampingType: {
            Type: 'option',
            Options: ['Off', 'Rayleigh'],
            Default: 'Off',
            EmitChange: true,
          },
          Alpha: {
            HandleChange: {
              DampingType: {
                Rayleigh: {},
              },
            },
            Type: 'double',
            Default: 0.0,
            // Unit: ['/s'],
            // DefaultUnit: '/s',
          },
          Beta: {
            HandleChange: {
              DampingType: {
                Rayleigh: {},
              },
            },
            Type: 'double',
            Default: 0.0,
            // Unit: ['s'],
            // DefaultUnit: 's',
          },
        },
        Incrementation: {
          Type: 'group',
          OptionsType: {
            Type: 'option',
            Options: ['Automatic', 'Direct'],
            Default: 'Automatic',
            EmitChange: true,
          },
          MaxIncrements: {
            HandleChange: {
              OptionsType: {
                Automatic: {},
              },
            },
            Type: 'double',
            Default: 100.0,
          },
          TimePeriod: {
            Type: 'double',
            Default: 1.0,
            // Unit: ['s'],
            // DefaultUnit: 's',
          },
          InitialTimeIncrement: {
            Type: 'double',
            Default: 1.0,
            // Unit: ['s'],
            // DefaultUnit: 's',
          },
          MinTimeIncrement: {
            Type: 'double',
            Default: 1e-5,
            // Unit: ['s'],
            // DefaultUnit: 's',
          },
          MaxTimeIncrement: {
            Type: 'double',
            Default: 1e30,
            // Unit: ['s'],
            // DefaultUnit: 's',
          },
        },
        ...stepsPublic,
      },
      BCs,
      Loads,
    },
    /*SlipWearStep: {
      AmcaxProp: {
        autoCreateChild: true, // 是否自动创建child
        selfEditKey: 'SlipWearStep', // 设置编辑自己
      },
      SlipWearStep: {
        AmcaxProp: BaseObjectAmcaxProp, // 自身可编辑
        Nigeom: {
          Type: 'option',
          Options: ['Off', 'On'],
          Default: 'Off',
        },
        IncrementaionType: {
          Type: 'option',
          Options: ['Default', 'Automatic', 'Direct'],
          Default: 'Default',
        },
        ...stepsPublic,
      },
      BCs,
      Loads,
    },
    BukleStep: {
      AmcaxProp: {
        autoCreateChild: true, // 是否自动创建child
        selfEditKey: 'BukleStep', // 设置编辑自己
      },
      BukleStep: {
        AmcaxProp: BaseObjectAmcaxProp, // 自身可编辑
        Perturbation: {
          Type: 'option',
          Options: ['Off', 'On'],
          Default: 'Off',
        },
        NumOfBucklingFactors: {
          Type: 'double',
          Default: 1.0,
        },
        Accuracy: {
          Type: 'double',
          Default: 0.01,
        },
        ...stepsPublic,
      },
      BCs,
      Loads,
    },
    SteadyStateDynamicsStep: {
      AmcaxProp: {
        autoCreateChild: true, // 是否自动创建child
        selfEditKey: 'SteadyStateDynamicsStep', // 设置编辑自己
      },
      SteadyStateDynamicsStep: {
        AmcaxProp: BaseObjectAmcaxProp, // 自身可编辑
        Perturbation: {
          Type: 'option',
          Options: ['Off', 'On'],
          Default: 'Off',
        },
        Harmonic: {
          Type: 'option',
          Options: ['Yes', 'No'],
          Default: 'Yes',
          EmitChange: true,
        },
        LowerFrequencyBound: {
          Type: 'double',
          Default: 0.0,
          // Unit: ['Hz'],
          // DefaultUnit: 'Hz',
        },
        UpperFrequencyBound: {
          Type: 'double',
          Default: 10.0,
          // Unit: ['Hz'],
          // DefaultUnit: 'Hz',
        },
        NumberOfDataPoints: {
          Type: 'double',
          Default: 20.0,
        },
        Bias: {
          Type: 'double',
          Default: 3.0,
        },
        Time: {
          Type: 'group',
          HandleChange: {
            Harmonic: {
              No: {},
            },
          },
          NumberOfFourierTerms: {
            Type: 'double',
            Default: 20.0,
          },
          LowerTimeBound: {
            Type: 'double',
            Default: 0.0,
            // Unit: ['s'],
            // DefaultUnit: 's',
          },
          UpperTimeBound: {
            Type: 'double',
            Default: 1.0,
            // Unit: ['s'],
            // DefaultUnit: 's',
          },
        },
        Damping: {
          Type: 'group',
          DampingType: {
            Type: 'option',
            Options: ['Off', 'Constant', 'Direct', 'Rayleigh'],
            Default: 'Off',
            EmitChange: true,
          },
          DampingRatio: {
            HandleChange: {
              DampingType: {
                Constant: {},
              },
            },
            Type: 'double',
            Default: 0.0,
          },
          DampingRatioTable: {
            HandleChange: {
              DampingType: {
                Direct: {},
              },
            },
            Label: 'DampingRatio',
            Type: 'dynamicTable',
            Columns: [
              {
                title: 'LowestMode',
                dataIndex: 'LowestMode',
              },
              {
                title: 'HighestMode',
                dataIndex: 'HighestMode',
              },
              {
                title: 'DampingRatio',
                dataIndex: 'DampingRatio',
              },
            ],
            Default: [
              {
                LowestMode: [0],
              },
              {
                HighestMode: [0],
              },
              {
                DampingRatio: [0],
              },
            ],
          },
          Alpha: {
            HandleChange: {
              DampingType: {
                Rayleigh: {},
              },
            },
            Type: 'double',
            Default: 0.0,
            // Unit: ['/s'],
            // DefaultUnit: '/s',
          },
          Beta: {
            HandleChange: {
              DampingType: {
                Rayleigh: {},
              },
            },
            Type: 'double',
            Default: 0.0,
            // Unit: ['s'],
            // DefaultUnit: 's',
          },
        },
        ...stepsPublic,
      },
      BCs,
      Loads,
    },
    HeatTransferStep: {
      AmcaxProp: {
        autoCreateChild: true, // 是否自动创建child
        selfEditKey: 'HeatTransferStep', // 设置编辑自己
      },
      HeatTransferStep: {
        AmcaxProp: BaseObjectAmcaxProp, // 自身可编辑
        SteadyState: {
          Type: 'option',
          Options: ['Off', 'On'],
          Default: 'Off',
        },
        Incrementation: {
          Type: 'group',
          OptionsType: {
            Label: 'Type',
            Type: 'option',
            Options: ['Default', 'Automatic', 'Direct'],
            Default: 'Default',
            EmitChange: true,
          },
          MaxIncrements: {
            HandleChange: {
              OptionsType: {
                Automatic: {},
                Direct: {},
              },
            },
            Type: 'double',
            Default: 100.0,
          },
          TimePeriod: {
            HandleChange: {
              OptionsType: {
                Automatic: {},
                Direct: {},
              },
            },
            Type: 'double',
            Default: 1.0,
            // Unit: ['s'],
            // DefaultUnit: 's',
          },
          InitialTimeIncrement: {
            HandleChange: {
              OptionsType: {
                Automatic: {},
                Direct: {},
              },
            },
            Type: 'double',
            Default: 1.0,
            // Unit: ['s'],
            // DefaultUnit: 's',
          },
          MinTimeIncrement: {
            HandleChange: {
              OptionsType: {
                Direct: {},
              },
            },
            Type: 'double',
            Default: 1e-5,
            // Unit: ['s'],
            // DefaultUnit: 's',
          },
          MaxTimeIncrement: {
            HandleChange: {
              OptionsType: {
                Direct: {},
              },
            },
            Type: 'double',
            Default: 1e30,
            // Unit: ['s'],
            // DefaultUnit: 's',
          },
        },
        ...stepsPublic,
      },
      BCs,
      Loads,
    },
    UncoupledTemperatureDislacementStep: {
      AmcaxProp: {
        autoCreateChild: true, // 是否自动创建child
        selfEditKey: 'UncoupledTemperatureDislacementStep', // 设置编辑自己
      },
      UncoupledTemperatureDislacementStep: {
        AmcaxProp: BaseObjectAmcaxProp, // 自身可编辑
        Nigeom: {
          Type: 'option',
          Options: ['Off', 'On'],
          Default: 'Off',
        },
        SteadyState: {
          Type: 'option',
          Options: ['Off', 'On'],
          Default: 'On',
        },
        Incrementation: {
          Type: 'group',
          OptionsType: {
            Label: 'Type',
            Type: 'option',
            Options: ['Default', 'Automatic', 'Direct'],
            Default: 'Default',
            EmitChange: true,
          },
          MaxIncrements: {
            HandleChange: {
              OptionsType: {
                Automatic: {},
                Direct: {},
              },
            },
            Type: 'double',
            Default: 100.0,
          },
          TimePeriod: {
            HandleChange: {
              OptionsType: {
                Automatic: {},
                Direct: {},
              },
            },
            Type: 'double',
            Default: 1.0,
            // Unit: ['s'],
            // DefaultUnit: 's',
          },
          InitialTimeIncrement: {
            HandleChange: {
              OptionsType: {
                Automatic: {},
                Direct: {},
              },
            },
            Type: 'double',
            Default: 1.0,
            // Unit: ['s'],
            // DefaultUnit: 's',
          },
          MinTimeIncrement: {
            HandleChange: {
              OptionsType: {
                Direct: {},
              },
            },
            Type: 'double',
            Default: 1e-5,
            // Unit: ['s'],
            // DefaultUnit: 's',
          },
          MaxTimeIncrement: {
            HandleChange: {
              OptionsType: {
                Direct: {},
              },
            },
            Type: 'double',
            Default: 1e30,
            // Unit: ['s'],
            // DefaultUnit: 's',
          },
        },
        ...stepsPublic,
      },
      BCs,
      Loads,
    },
    CoupledTemperatureDisplacementStep: {
      AmcaxProp: {
        autoCreateChild: true, // 是否自动创建child
        selfEditKey: 'CoupledTemperatureDisplacementStep', // 设置编辑自己
      },
      CoupledTemperatureDisplacementStep: {
        AmcaxProp: BaseObjectAmcaxProp, // 自身可编辑
        Nigeom: {
          Type: 'option',
          Options: ['Off', 'On'],
          Default: 'Off',
        },
        SteadyState: {
          Type: 'option',
          Options: ['Off', 'On'],
          Default: 'On',
        },
        Incrementation: {
          Type: 'group',
          OptionsType: {
            Label: 'Type',
            Type: 'option',
            Options: ['Default', 'Automatic', 'Direct'],
            Default: 'Default',
            EmitChange: true,
          },
          MaxIncrements: {
            HandleChange: {
              OptionsType: {
                Automatic: {},
                Direct: {},
              },
            },
            Type: 'double',
            Default: 100.0,
          },
          TimePeriod: {
            HandleChange: {
              OptionsType: {
                Automatic: {},
                Direct: {},
              },
            },
            Type: 'double',
            Default: 1.0,
            // Unit: ['s'],
            // DefaultUnit: 's',
          },
          InitialTimeIncrement: {
            HandleChange: {
              OptionsType: {
                Automatic: {},
                Direct: {},
              },
            },
            Type: 'double',
            Default: 1.0,
            // Unit: ['s'],
            // DefaultUnit: 's',
          },
          MinTimeIncrement: {
            HandleChange: {
              OptionsType: {
                Direct: {},
              },
            },
            Type: 'double',
            Default: 1e-5,
            // Unit: ['s'],
            // DefaultUnit: 's',
          },
          MaxTimeIncrement: {
            HandleChange: {
              OptionsType: {
                Direct: {},
              },
            },
            Type: 'double',
            Default: 1e30,
            // Unit: ['s'],
            // DefaultUnit: 's',
          },
        },
        ...stepsPublic,
      },
      BCs,
      Loads,
    },*/
  },
  /* solver: {
    AmcaxProp: {
      childCreatable: true,
    },
    Static: {
      AnalysisType: {
        Type: 'option',
        Options: ['Linear Static'],
        Default: 'Linear Static',
      },
      SPC: {
        Type: 'Boundary-DisplacementConstraint',
      },
      Load: {
        Type: 'Boundary-Load',
      },
    },
  },*/
};
